package com.chenyaowei.product.service;

import com.chenyaowei.elasticsearch.model.Product;
import com.chenyaowei.product.domain.CywProSkuInfo;
import com.chenyaowei.product.domain.CywProSpuInfo;
import com.chenyaowei.product.request.ProductSearchRequest;
import com.chenyaowei.product.vo.ProductInfoVO;
import com.chenyaowei.product.vo.ProductSearchConditionVO;
import com.chenyaowei.product.request.ProductReleaseRequest;
import com.chenyaowei.product.vo.ProductStatsInfoVO;

import java.util.List;


public interface CywProductService {

    /**
     * 商品发布
     * @param productReleaseRequest
     * @return
     */
    int productRelease(ProductReleaseRequest productReleaseRequest);

    /**
     * 商品筛选条件
     * @param
     * @return com.chenyaowei.product.vo.ProductSearchConditionVO
     **/
    ProductSearchConditionVO productSearchCondition();

    /**
     *
     * @date 2023/12/2
     * @param productSearchRequest
     * @return java.util.List<com.chenyaowei.product.vo.ProductInfoVO>
     **/
    List<CywProSkuInfo> productSearch(ProductSearchRequest productSearchRequest);

    ProductInfoVO productInfo(Long spuId, String token);

    List<Product> buildEsProductList(List<ProductInfoVO> list);

    List<ProductInfoVO> buildProductInfoVOList(List<CywProSpuInfo> spuInfoList);

    ProductStatsInfoVO productStatsInfo(Long skuId);

    int collectSpu(Long spuId);

    List<CywProSkuInfo> productRecommend();
}
